package com.naiterui.ehp.bs.doctor.dao;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.naiterui.ehp.bs.doctor.vo.PatientMessageChargeVO;

public interface IDrMessageConsultChargeDao {

    /**
     * 根据医生id与患者id查询诊金
     * DrMessageConsultChargeDaoImpl.getChargeById()
     * @Author guoyongxiang
     * @Date 2017年3月31日
     * @since 2.7.0
     * @param doctorId
     * @param patientId
     * @return
     */
    Integer getChargeById(Long doctorId, Long patientId);

    /**
     * 根据医生id和患者列表获取收费金额列表
     * DrMessageConsultChargeDaoImpl.getChargeListByDoctorId()
     * @Author guoyongxiang
     * @Date 2017年3月31日
     * @since 2.7.0
     * @param doctorId
     * @return
     */
    Map<Long, Integer> getChargeListByDoctorId(Long doctorId, List<Long> patientIds);

    /**
     * 批量保存医生对患者的收费设置
     * DrMessageConsultChargeDaoImpl.saveChargeByDoctorId()
     * @Author guoyongxiang
     * @Date 2017年3月31日
     * @since 2.7.0
     * @param doctorId
     * @param changeVOList
     */
    void saveChargeByDoctorId(Long doctorId, Set<PatientMessageChargeVO> changeVOList);

    /**
     * 根据医生ID删除收费设置
     * IDrMessageConsultChargeDao.deleteChareByDoctorId()
     * @Author guoyongxiang
     * @Date 2017年4月1日
     * @since 2.7.0
     * @param doctorId
     */
    void deleteChareByDoctorId(Long doctorId);

    /**
     * 根据医生ID删除指定患者的收费设置
     * IDrMessageConsultChargeDao.deleteChareByDoctorId()
     * @Author guoyongxiang
     * @Date 2017年4月1日
     * @since 2.7.0
     * @param doctorId
     * @param patientIds
     */
    void deleteChareByDoctorId(Long doctorId, Set<Long> patientIds);


    /**
     * 根据患者id及医生id查询该患者对应医生的诊金
     *
     * @param doctorIds  医生id
     * @param patientId 患者id
     * @return
     */
    Map<Long, Integer> getChargeListByPatientId(List<Long> doctorIds, Long patientId);
}